package com.cloud.cmt.usermanage.service;

import com.angela.cloud.common.base.ResultMessage;
import com.cloud.cmt.usermanage.constant.EnterpriseConstants;
import com.cloud.cmt.usermanage.dao.EnterpriseUserDAO;
import com.cloud.cmt.usermanage.entity.vo.EnterpriseDetailVO;
import com.cloud.cmt.usermanage.entity.vo.EnterpriseReferrerVO;
import com.cloud.cmt.usermanage.entity.vo.EnterpriseUserVO;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

/**
 * 浙江卓锐科技股份有限公司 版权所有 © Copyright 2017<br>
 * 说明: <br>
 * 项目名称: cloud-maintenance <br>
 * 创建日期: 2017年10月22日 18:00 <br>
 * 作者: <a href="6492178@gmail.com">汪萌萌</a>
 */
public interface EnterpriseService {
    /**
     * Apply for probation result message.
     * 申请试用
     *
     * @param enterpriseDetailVO   the enterprise detail vo
     * @param enterpriseUserVO     the enterprise user vo
     * @param enterpriseReferrerVO the enterprise referrer vo
     * @param code                 the code
     * @return the result message
     */
    ResultMessage applyForProbation(EnterpriseDetailVO enterpriseDetailVO, EnterpriseUserVO enterpriseUserVO, EnterpriseReferrerVO enterpriseReferrerVO, Integer code);

    /**
     * Check username result message.
     * 校验用户名是否可用
     *
     * @param username the username
     * @return the result message
     */
    ResultMessage checkUsername(String username);

    /**
     * Check social credit code result message.
     * 校验营业执照代码是否唯一
     *
     * @param socialCreditCode the social credit code
     * @return the result message
     */
    ResultMessage checkSocialCreditCode(String socialCreditCode);

    /**
     * Up load pic result message.
     * 上传头像
     *
     * @param file the file
     * @return the result message
     */
    ResultMessage upLoadPic(MultipartFile file);

    /**
     * Gets sms verification code.
     * 获取短信验证码
     *
     * @param request the request
     * @param phone   the phone
     * @return the sms verification code
     */
    ResultMessage getSmsVerificationCode(HttpServletRequest request, String phone);

    /**
     * Re apply for probation result message.
     * 重新申请试用
     *
     * @param enterpriseDetailVO the enterprise detail vo
     * @return the result message
     */
    ResultMessage reApplyForProbation(EnterpriseDetailVO enterpriseDetailVO);

}
